package com.xintool.window.Buttons;

import com.xintool.Utils.IconManager;

import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

//性格表
public class Button_character extends  ButtonFactory{
    private static JFrame frame;

    private static final String[][] NATURE_DATA = {
            // 攻击型（4个）
            {"固执：攻击↑ 特攻↓", "孤独：攻击↑ 防御↓",
                    "调皮：攻击↑ 特防↓", "勇敢：攻击↑ 速度↓"},

            // 防御型（4个）
            {"大胆： 防御↑ 攻击↓", "顽皮： 防御↑ 特攻↓",
                    "无虑： 防御↑ 特防↓", "悠闲： 防御↑ 速度↓"},

            // 特攻型（4个）
            {"保守：特攻↑ 攻击↓", "稳重：特攻↑ 防御↓",
                    "马虎：特攻↑ 特防↓", "冷静：特攻↑ 速度↓"},

            // 特防型（4个）
            {"沉着：特防↑ 攻击↓", "温顺：特防↑ 防御↓",
                    "慎重：特防↑ 特攻↓", "狂妄：特防↑ 速度↓"},

            // 速度型（4个）
            {"开朗：速度↑ 特攻↓", "胆小：速度↑ 攻击↓",
                    "急躁：速度↑ 防御↓", "天真：速度↑ 特防↓"},

            // 平衡型（5个）
            {"害羞：无修正", "实干：无修正",
                    "认真：无修正", "浮躁：无修正","坦率：无修正"}

    };

    @Override
    public JButton showButton() {
        JButton button = ButtonFactory.getButton("性格表");
        button.addActionListener(e -> createMainWindow());
        return button;
    }

    public void createMainWindow() {

        if (frame != null && frame.isDisplayable()) {
            frame.toFront();
            return;
        }

        frame = new JFrame("性格修正表");
        frame.setSize(350, 450);
        frame.setLayout(new BorderLayout(10, 10));
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);


        // 主内容面板（2x2网格布局）
        JPanel mainPanel = new JPanel(new GridLayout(3, 2, 10, 10));
        mainPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

        // 生成六个类型区域
        String[] titles = {"攻击型", "防御型", "特攻型", "特防型","速度型","平衡型"};
        for (int i = 0; i < NATURE_DATA.length; i++) {
            mainPanel.add(createTypePanel(titles[i], NATURE_DATA[i]));
        }

        // 整体布局组装
        frame.add(mainPanel, BorderLayout.CENTER);

        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosed(WindowEvent e) {
                frame = null;
            }
        });

        frame.setVisible(true);
    }

    // 创建类型面板
    private JPanel createTypePanel(String title, String[] items) {
        // 创建一个JPanel对象，用于容纳和管理组件
        JPanel panel = new JPanel(new GridLayout(0, 1, 5, 5));
        panel.setBorder(BorderFactory.createTitledBorder(title));

        for (String item : items) {
            panel.add(createNatureLabel(item));
        }
        return panel;
    }

    // 创建带颜色标记的标签
    private JLabel createNatureLabel(String text) {
        String htmlText = "<html>"
                + text.replace("↑", "<font color='#009933'>↑</font>")
                .replace("↓", "<font color='#FF3333'>↓</font>")
                + "</html>";

        JLabel label = new JLabel(htmlText);
        label.setFont(new Font("微软雅黑", Font.PLAIN, 14));
        label.setBorder(BorderFactory.createEmptyBorder(3, 10, 3, 10));
        return label;
    }
}
